Method and apparatus for matching probe points to road segments utilizing a trajectory identifier

ABSTRACT

A method, apparatus and computer program product are provided to match probe points to road segments utilizing a trajectory identifier, thereby increasing the accuracy with which probe points, such as probe points in ambiguous locations, are matched to road segments. For a probe point having a respective trajectory identifier (ID) and associated with an ambiguous link tuple, the method identifies each probe point having the respective trajectory ID that is unambiguously matched to first or second branches. The method separately determines a number of probe points having the respective trajectory ID that are unambiguously matched to the first and second branches. The method matches the probe point having the respective trajectory ID and associated with the ambiguous link tuple to either the first branch or the second branch based upon the number of probe points having the respective trajectory ID that are unambiguously matched to the first and second branches.

TECHNOLOGICAL FIELD

An example embodiment is directed generally to the matching of probepoints to road segments as represented by a map and, more particularly,to the matching of probe points to road segments utilizing a trajectoryidentifier.

BACKGROUND

Probe points are frequently captured by global positioning systems(“GPS”), navigation systems or the like. Each probe point is associatedwith a location, such as may be expressed in terms of latitude andlongitude. Some probe points are also associated with a heading and aspeed at which the GPS system or the navigation system was moving at thetime at which the probe point was captured.

In some instances, such as within a region for which a map consisting ofa plurality of road segments has been created, the probe points may bematched to the map in order to identify the location along a roadsegment at which the probe point was captured. Map matching may beperformed in real time, such as by navigation systems in order toidentify the location of the probe point relative to the road segmentsrepresented by the map. For example, navigation systems mounted within avehicle may perform real time map matching in order to depict therelative position of a probe point upon a map, thereby illustrating thecurrent location of the vehicle. Map matching for real time applicationsmay only utilize the path of probe points up to the most recent probepoint since those are the only probe points that are known.Alternatively, map matching may rely upon post-processing, such as ininstances in which the probe points captured by a plurality of GPSsystems or navigation systems are matched to the road segmentsrepresented by a map for traffic estimation or other purposes. Theaccuracy of the map matching provided by post-processing may be improvedrelative to the map matching for real time applications since probepoints captured subsequent in time to the probe point currently beingprocessed are also known and may be referenced during thepost-processing.

A variety of probe-centric map matching techniques have been developed.These map matching techniques include map matching techniques thatutilize geometric analysis including point-to-point analysis,point-to-curve analysis and trajectory techniques. Other map matchingtechniques utilize a topological analysis of the road network to improveaccuracy and performance. Some map matching techniques utilizeprobabilistic map-matching algorithms. The probabilistic map-matchingalgorithms attempt to identify the most probable road segment in someconfidence region about a respective probe point. Additionally oralternatively, probabilistic map-matching algorithms may attempt toidentify the most probable path in addition to the most probable roadsegment. The probabilistic map-matching algorithms may include, forexample, Viterbi and hidden Markov model techniques. Further,map-matching techniques may include other types of map-matchingalgorithms including those that utilize Kalman and extended Kalman basedtechniques and those that utilize particle filters.

Whether performed in real time or as a post-processing technique, mapmatching has been a probe-centric process in which each probe point isanalyzed to identify the closest road segment and the projection of theprobe point onto the closest road segment. In order to identify theclosest road segment, a separate spatial search is generally conductedfor each probe point; even in instances in which a probe point is spaceda substantial distance from any road segment. Thus, the number ofspatial searches to be conducted is generally proportional to the numberof probe points.

Spatial searches are computationally expensive. For example,probe-centric map matching techniques for large probe data sets, such asmillions of probe points, can incur substantial execution time and costssince the number of spatial searches is proportional to the number ofprobe points. Thus, map matching and, in particular, the spatialsearches for each of the probe points may become a limiting factor atleast for real time applications.

In an effort to perform map matching more quickly and efficiently, amap-centric map matching technique has been developed as described byU.S. patent application Ser. No. 14/752,159 entitled Map-Centric MapMatching Method and Apparatus and filed Jun. 26, 2015, the entirecontents of which are incorporated herein by reference. The map-centricmap matching technique may, in many instances, conduct fewer spatialsearches since the spatial searches are no longer proportional in numberto the number of probe points and are, instead, based upon the length ofthe road segments of the map to which the probe points are to bematched. As a result, the map-centric map matching technique may mapmatch the probe points in a more efficient manner.

However, map-centric map matching techniques may be unable to map matchprobe points to respective road segments with a desired level ofconfidence at ambiguous locations within a road network. As shown inFIG. 1, ambiguous locations at which probe points cannot be map matchedto respective road segments with a sufficient level of confidence bymap-centric map matching techniques may include crossing roads, bothcrossing roads at grade and crossing roads not at grade, for which probepoints have the same or similar headings as shown at 10 in FIG. 1,adjacent or parallel roads for which the probe points have the same orsimilar probe headings as shown at 12 in FIG. 1, and ramps orbifurcations in which a roadway splits or merges as shown at 14 inFIG. 1. At these ambiguous locations along the road network, the probepoints may be incorrectly map matched to the wrong road segment. Even ifmap matched to the correct road segment, the confidence value associatedwith the map matched probe point may be lower than is desirable.Although the results for the map matching of probe points at ambiguouslocations may be improved by the utilization of probabilistic mapmatching, the probe points may still not be map matched to the correctroad segments with sufficient accuracy and/or with a desired level ofconfidence.

BRIEF SUMMARY

A method, apparatus and computer program product are provided inaccordance with an example embodiment in order to match probe points toroad segments utilizing a trajectory identifier. As such, probe pointsmay be more accurately matched to road segments with a greater level ofconfidence, even in ambiguous locations within a road network, such asat or near crossing roads, adjacent or parallel roads, or ramps andbifurcations. In an example embodiment, the matching of probe points toroad segments utilizing a trajectory identifier may be employed inconjunction with a map-centric map matching technique in order to mapmatch the probe points quickly, efficiently and accurately, even atambiguous locations within a road network. In this regard, following thematching of many probe points to respective road segments utilizing amap-centric map matching technique, the probe points at ambiguouslocations within the road network may then be accurately mapped torespective road segments in an efficient matter by analyzing the probepoints already matched to a limited number of the road segments that areproximate to the ambiguous locations.

In an example embodiment, a method is provided that includesidentifying, for a probe point having a respective trajectory identifier(ID) and associated with an ambiguous link tuple, each probe pointhaving the respective trajectory ID that is unambiguously matched to oneof a first branch or a second branch that extend away from the ambiguouslink tuple. The method also includes separately determining a number ofprobe points having the respective trajectory ID that are unambiguouslymatched to the first branch and that are unambiguously matched to thesecond branch. The method further includes matching the probe pointhaving the respective trajectory ID that was associated with theambiguous link tuple to a respective one of the first branch or thesecond branch based upon the number of probe points having therespective trajectory ID that are unambiguously matched to the firstbranch and that are unambiguously matched to the second branch.

The probe point may be matched in accordance with an example embodimentby matching the probe point having the respective trajectory ID that wasassociated with the ambiguous link tuple to the respective one of thefirst branch or the second branch for which the number of probe pointshaving the respective trajectory ID unambiguously matched theretoexceeds the number of probe points having the respective trajectory IDthat are unambiguously matched to the other one of the first branch orthe second branch by at least a predefined amount. The method of thisexample embodiment may also include includes causing the probe pointhaving the respective trajectory ID to remain associated with theambiguous link tuple in an instance in which the number of probe pointshaving the respective trajectory ID that are unambiguously matched tothe first branch and that are unambiguously matched to the second branchdiffer by less than the predefined amount.

A plurality of probe points having respective trajectory IDs may beassociated with the ambiguous link tuple. In this example embodiment,the method may identify each probe point having any one of therespective trajectory IDs of the probe points associated with theambiguous link tuple that are unambiguously matched to one of the firstbranch or the second branch during a single traversal of the firstbranch and the second branch. The method of an example embodiment alsoincludes determining a confidence value associated with the match of theprobe point having the respective trajectory ID to a respective one ofthe first branch or the second branch based upon a ratio of a number ofprobe points having the respective trajectory ID that are unambiguouslymatched to the first branch and to the second branch.

The method of an example embodiment also includes map matching aplurality of probe points to respective links. In this exampleembodiment, the map matching includes identifying the probe pointassociated with the ambiguous link tuple. The method of an exampleembodiment identifies each probe point having the respective trajectoryID that is unambiguously matched one of the first and second branchesalong the same predefined length of the first and second branches. Thefirst branch may split into at least two sub-branches. In this instance,the method identifies each probe point having the respective trajectoryID that is unambiguously matched to the first branch by identifying eachprobe point having the respective trajectory ID that is unambiguouslymatched to one of the at least two sub-branches into which the firstbranch splits.

In another example embodiment, an apparatus is provided that includes atleast one processor and at least one memory storing computer programcode with the at least one memory and the stored computer program codebeing configured, with the at least one processor, to cause theapparatus to at least identify, for a probe point having a respectivetrajectory identifier (ID) and associated with an ambiguous link tuple,each probe point having the respective trajectory ID that isunambiguously matched to one of a first branch or a second branch thatextend away from the ambiguous link tuple. The at least one memory andthe stored computer program code are configured, with the at least oneprocessor, to cause the apparatus of this example embodiment toseparately determine the number of probe points having the respectivetrajectory ID that are unambiguously matched to the first branch andthat are unambiguously matched to the second branch. The at least onememory and the stored computer program code are configured, with the atleast one processor, to cause the apparatus of this example embodimentto match the probe point having the respective trajectory ID that wasassociated with the ambiguous link tuple to a respective one of thefirst branch or the second branch based upon the number of probe pointshaving the respective trajectory ID that are unambiguously matched tothe first branch and that are unambiguously matched to the secondbranch.

The probe point may be matched in accordance with an example embodimentby matching the probe point having the respective trajectory ID that wasassociated with the ambiguous link tuple to the respective one of thefirst branch or the second branch for which the number of probe pointshaving the respective trajectory ID unambiguously matched theretoexceeds the number of probe points having the respective trajectory IDthat are unambiguously matched to the other one of the first branch orthe second branch by at least a predefined amount. The at least onememory and the stored computer program code are configured, with the atleast one processor, to cause the apparatus of this example embodimentto cause the probe point having the respective trajectory ID to remainassociated with the ambiguous link tuple in an instance in which thenumber of probe points having the respective trajectory ID that areunambiguously matched to the first branch and that are unambiguouslymatched to the second branch differ by less than the predefined amount.

A plurality of probe points having the respective trajectory ID may beassociated with the ambiguous link tuple. In this instance, the at leastone memory and the stored computer program code are configured, with theat least one processor, to cause the apparatus of an example embodimentto identify each probe point having any one of the respective trajectoryIDs of the probe points associated with the ambiguous link tuple thatare unambiguously matched to one of the first branch or the secondbranch during a single traversal of the first branch and the secondbranch. The at least one memory and the stored computer program code arefurther configured, with the at least one processor, to cause theapparatus of an example embodiment to determine the confidence valueassociated with the match of the probe point having the respectivetrajectory ID to a respective one of the first branch or the secondbranch based upon a ratio of the number of probe points having therespective trajectory ID that are unambiguously matched to the firstbranch and to the second branch. The at least one memory and the storedcomputer program code are further configured, with the at least oneprocessor, to cause the apparatus of an example embodiment to map matcha plurality of probe points to respective links. In this exampleembodiment, the at least one memory and the stored computer program codeare also configured, with the at least one processor, to cause theapparatus to identify, by the map matching, the probe point associatedwith the ambiguous link tuple.

In a further example embodiment, a computer program product is providedthat includes at least one non-transitory computer-readable storagemedium having computer-readable program instructions stored therein withthe computer-readable program instructions including programinstructions configured to identify, for a probe point having arespective trajectory identifier (ID) and associated with an ambiguouslink tuple, each probe point having the respective trajectory ID that isunambiguously matched to one of a first branch or a second branch thatextend away from the ambiguous link tuple. The computer-readable programinstructions also include program instructions configured to separatelydetermine a number of probe points having the respective trajectory IDthat are unambiguously matched to the first branch and that areunambiguously matched to the second branch. The computer-readableprogram instructions further include program instructions configured tomatch the probe point having the respective trajectory ID that wasassociated with the ambiguous link tuple to a respective one of thefirst branch or the second branch based upon the number of probe pointshaving the respective trajectory ID that are unambiguously matched tothe first branch and that are unambiguously matched to the secondbranch.

The probe point may be matched in accordance with an example embodimentby matching the probe point having the respective trajectory ID that wasassociated with the ambiguous link tuple to the respective one of thefirst branch or the second branch for which the number of probe pointshaving the respective trajectory ID unambiguously matched theretoexceeds the number of probe points having the respective trajectory IDthat are unambiguously matched to the other one of the first branch orthe second branch by at least a predefined amount. The computer-readableprogram instructions further include program instructions configured tocause the probe point having the respective trajectory ID to remainassociated with the ambiguous link tuple in an instance in which thenumber of probe points having the respective trajectory ID that areunambiguously matched to the first branch and that are unambiguouslymatched to the second branch differ by less than the predefined amount.

A plurality of probe points having respective trajectory IDs may beassociated with the ambiguous link tuple. In this instance, the programinstructions configured to identify each probe point may include programinstructions configured to identify each probe point having any one ofthe respective trajectory IDs of the probe points associated with theambiguous link tuple that are unambiguously matched to one of the firstbranch or the second branch during a single traversal of the firstbranch and the second branch. The computer-readable program instructionsof an example embodiment also include program instructions configured todetermine a confidence value associated with the match of the probepoint having the respective trajectory ID to a respective one of thefirst branch or the second branch based upon a ratio of a number ofprobe points having the respective trajectory ID that are unambiguouslymatched to the first branch and to the second branch. Thecomputer-readable program instructions of an example embodiment alsoinclude program instructions configured to map match a plurality ofprobe points to respective links. In this example embodiment, theprogram instructions configured to map match also include programinstructions configured to identify the probe point associated with theambiguous link tuple.

In yet another example embodiment, an apparatus is provided thatincludes means for identifying, for a probe point having a respectivetrajectory identifier (ID) and associated with an ambiguous link tuple,each probe point having the respective trajectory ID that isunambiguously matched to one of a first branch or a second branch thatextend away from the ambiguous link tuple. The apparatus of this exampleembodiment also includes means for separately determining a number ofprobe points having the respective trajectory ID that are unambiguouslymatched to the first branch and that are unambiguously matched to thesecond branch. The apparatus of this example embodiment further includesmeans for matching the probe point having the respective trajectory IDthat was associated with the ambiguous link tuple to a respective one ofthe first branch or the second branch based upon the number of probepoints having the respective trajectory ID that are unambiguouslymatched to the first branch and that are unambiguously matched to thesecond branch.

BRIEF DESCRIPTION OF THE DRAWINGS

The patent application file contains at least one drawing executed incolor. Copies of this patent application with color drawing(s) will beprovided by the Office upon request and payment of the necessary fee.

Having thus described certain example embodiments of the presentdisclosure in general terms, reference will hereinafter be made to theaccompanying drawings, which are not necessarily drawn to scale, andwherein:

FIG. 1 illustrates three ambiguous locations within a road network;

FIG. 2 is a block diagram of an apparatus that may be specificallyconfigured in accordance with an example embodiment of the presentinvention;

FIG. 3 is a flowchart illustrating the operations performed, such as bythe apparatus of FIG. 2, in accordance with an example embodiment of thepresent invention;

FIG. 4 depicts first and second branches that extend outward from anambiguous link tuple and along which trajectory identifiers areidentified in order to match probe points associated with the ambiguouslink tuple in accordance with an example embodiment of the presentinvention;

FIG. 5 is a flowchart illustrating the operations performed, such as bythe apparatus of FIG. 2, in order to match the probe point to arespective one of the first branch or the second branch in accordancewith an example embodiment of the present invention; and

FIG. 6 depicts the probe points associated with the ambiguous link tupleof FIG. 4 that have been matched to a respective one of the first branchor the second branch in accordance with an example embodiment of thepresent invention.

DETAILED DESCRIPTION

Some embodiments of the present invention will now be described morefully hereinafter with reference to the accompanying drawings, in whichsome, but not all, embodiments of the invention are shown. Indeed,various embodiments of the invention may be embodied in many differentforms and should not be construed as limited to the embodiments setforth herein; rather, these embodiments are provided so that thisdisclosure will satisfy applicable legal requirements. Like referencenumerals refer to like elements throughout. As used herein, the terms“data,” “content,” “information,” and similar terms may be usedinterchangeably to refer to data capable of being transmitted, receivedand/or stored in accordance with embodiments of the present invention.Thus, use of any such terms should not be taken to limit the spirit andscope of embodiments of the present invention.

Additionally, as used herein, the term ‘circuitry’ refers to (a)hardware-only circuit implementations (e.g., implementations in analogcircuitry and/or digital circuitry); (b) combinations of circuits andcomputer program product(s) comprising software and/or firmwareinstructions stored on one or more computer readable memories that worktogether to cause an apparatus to perform one or more functionsdescribed herein; and (c) circuits, such as, for example, amicroprocessor(s) or a portion of a microprocessor(s), that requiresoftware or firmware for operation even if the software or firmware isnot physically present. This definition of ‘circuitry’ applies to alluses of this term herein, including in any claims. As a further example,as used herein, the term ‘circuitry’ also includes an implementationcomprising one or more processors and/or portion(s) thereof andaccompanying software and/or firmware. As another example, the term‘circuitry’ as used herein also includes, for example, a basebandintegrated circuit or applications processor integrated circuit for amobile phone or a similar integrated circuit in a server, a cellularnetwork device, other network device, and/or other computing device.

As defined herein, a “computer-readable storage medium,” which refers toa physical storage medium (e.g., volatile or non-volatile memorydevice), may be differentiated from a “computer-readable transmissionmedium,” which refers to an electromagnetic signal.

A method, apparatus and computer program product are provided to matchprobe points to road segments utilizing a trajectory identifier, therebyincreasing the accuracy and the confidence with which probe points, suchas probe points in ambiguous locations within a road network, e.g., ator near crossing roads, adjacent or parallel roads, or ramps andbifurcations, are matched to road segments. In an example embodiment,the matching of probe points to road segments utilizing a trajectoryidentifier may be employed in conjunction with a map-centric mapmatching technique such that the map-centric matching technique mayefficiently match many probe points to respective road segments with theprobe points that are at ambiguous locations within the road network andthat cannot be accurately map matched then being matched utilizing theassociated trajectory identifiers, such as during a single traversal ofa limited number of the road segments that are proximate to theambiguous locations.

The apparatus of an example embodiment may be embodied by a variety ofcomputing devices including, for example, such as a navigation system,an advanced driver assistance system (ADAS), a GPS system or the like.Additionally or alternatively, the apparatus may be embodied in othertypes of computing devices, such as a server, a personal computer, acomputer workstation, a laptop computer, a plurality of networkedcomputing devices or the like, that are configured to analyze probepoints, such as for traffic estimation or other purposes. In thisregard, FIG. 2 depicts the apparatus 20 of an example embodiment thatmay be embodied by various computing devices including those identifiedabove. As shown, the apparatus of an example embodiment may include, maybe associated with or may otherwise be in communication with a processor22 and a memory device 24 and optionally a communication interface 26and/or a user interface 28.

In some embodiments, the processor 22 (and/or co-processors or any otherprocessing circuitry assisting or otherwise associated with theprocessor) may be in communication with the memory device 24 via a busfor passing information among components of the apparatus 20. The memorydevice may be non-transitory and may include, for example, one or morevolatile and/or non-volatile memories. In other words, for example, thememory device may be an electronic storage device (for example, acomputer readable storage medium) comprising gates configured to storedata (for example, bits) that may be retrievable by a machine (forexample, a computing device like the processor). The memory device maybe configured to store information, data, content, applications,instructions, or the like for enabling the apparatus to carry outvarious functions in accordance with an example embodiment of thepresent invention. For example, the memory device could be configured tobuffer input data for processing by the processor. Additionally oralternatively, the memory device could be configured to storeinstructions for execution by the processor.

As noted above, the apparatus 20 may be embodied by a computing deviceincluding those described above. However, in some embodiments, theapparatus may be embodied as a chip or chip set. In other words, theapparatus may comprise one or more physical packages (for example,chips) including materials, components and/or wires on a structuralassembly (for example, a circuit board). The structural assembly mayprovide physical strength, conservation of size, and/or limitation ofelectrical interaction for component circuitry included thereon. Theapparatus may therefore, in some cases, be configured to implement anembodiment of the present invention on a single chip or as a single“system on a chip.” As such, in some cases, a chip or chipset mayconstitute means for performing one or more operations for providing thefunctionalities described herein.

The processor 22 may be embodied in a number of different ways. Forexample, the processor may be embodied as one or more of varioushardware processing means such as a coprocessor, a microprocessor, acontroller, a digital signal processor (DSP), a processing element withor without an accompanying DSP, or various other processing circuitryincluding integrated circuits such as, for example, an ASIC (applicationspecific integrated circuit), an FPGA (field programmable gate array), amicrocontroller unit (MCU), a hardware accelerator, a special-purposecomputer chip, or the like. As such, in some embodiments, the processormay include one or more processing cores configured to performindependently. A multi-core processor may enable multiprocessing withina single physical package. Additionally or alternatively, the processormay include one or more processors configured in tandem via the bus toenable independent execution of instructions, pipelining and/ormultithreading.

In an example embodiment, the processor 22 may be configured to executeinstructions stored in the memory device 24 or otherwise accessible tothe processor. Alternatively or additionally, the processor may beconfigured to execute hard coded functionality. As such, whetherconfigured by hardware or software methods, or by a combination thereof,the processor may represent an entity (for example, physically embodiedin circuitry) capable of performing operations according to anembodiment of the present invention while configured accordingly. Thus,for example, when the processor is embodied as an ASIC, FPGA or thelike, the processor may be specifically configured hardware forconducting the operations described herein. Alternatively, as anotherexample, when the processor is embodied as an executor of softwareinstructions, the instructions may specifically configure the processorto perform the algorithms and/or operations described herein when theinstructions are executed. However, in some cases, the processor may bea processor of a specific device (for example, the computing device)configured to employ an embodiment of the present invention by furtherconfiguration of the processor by instructions for performing thealgorithms and/or operations described herein. The processor mayinclude, among other things, a clock, an arithmetic logic unit (ALU) andlogic gates configured to support operation of the processor.

The apparatus 20 of an example embodiment also optionally includes acommunication interface 26 that may be any means such as a device orcircuitry embodied in either hardware or a combination of hardware andsoftware that is configured to receive and/or transmit data from/toother electronic devices in communication with the apparatus, such as bybeing configured to receive probe data from a database, cloud storage orother external memory device and/or to provide a representation of theroad geometry to an in-vehicle global positioning system (GPS),in-vehicle navigation system, a personal navigation device (PND), aportable navigation device or the like. In this regard, thecommunication interface may include, for example, an antenna (ormultiple antennas) and supporting hardware and/or software for enablingcommunications with a wireless communication network. Additionally oralternatively, the communication interface may include the circuitry forinteracting with the antenna(s) to cause transmission of signals via theantenna(s) or to handle receipt of signals received via the antenna(s).In some environments, the communication interface may alternatively oralso support wired communication.

As illustrated in FIG. 2, the apparatus 20 may also optionally includeor otherwise be in communication with a user interface 28. The userinterface may include a touch screen display, a keyboard, a mouse, ajoystick or other input/output mechanisms. In some embodiments, the userinterface, such as a display, speakers, or the like, may also beconfigured to provide output to the user. In this example embodiment,the processor 22 may comprise user interface circuitry configured tocontrol at least some functions of one or more input/output mechanisms.The processor and/or user interface circuitry comprising the processormay be configured to control one or more functions of one or moreinput/output mechanisms through computer program instructions (forexample, software and/or firmware) stored on a memory accessible to theprocessor (for example, memory device 24 and/or the like).

In order to provide for matching of probe data as represented by aplurality of probe points to respective road segments, reference is nowmade to FIG. 3 in which the operations performed, such as by theapparatus 20 of FIG. 2, are depicted. The method, apparatus and computerprogram product of an example embodiment are configured to match theprobe points associated with an ambiguous link tuple to respective roadsegments. As described below, the matching of the probe pointsassociated with the ambiguous link tuple may be performed in anefficient manner, such as based upon a single traversal of the roadsegments that extend away from the ambiguous link tuple.

An ambiguous link tuple includes two or more links of a road networkthat are located relative to one another such that it is impossible, fora respective probe point, to determine with sufficient confidence withwhich link of the ambiguous link tuple the probe point is associated.For example, an ambiguous link tuple may be defined by two or more linksof adjacent road segments that have the same or similar headings. Theseroad segments that include links forming an ambiguous link tuple mayinclude crossing roads for which probe points that are associatedtherewith have the same or similar headings, adjacent or parallel roadsfor which probe points that are associated therewith have the same orsimilar headings, ramps and bifurcations. As further result of the roadsegments that constitute the ambiguous link tuple being positionedrelatively close to one another and oriented such that vehiclestraveling along the respective road segments have the same or similarheadings, a probe point may be associated, such as by a map-centric mapmatching technique, with the ambiguous link tuple such as by associatingthe probe point with two or more links of the ambiguous link tuple, butthe probe point cannot be associated with an individual one of the linksof the ambiguous link tuple with sufficient confidence.

An ambiguous link tuple and the probe points associated therewith may bedetermined in various manners. In an example embodiment and as shown inblock 30 of FIG. 3, the apparatus 20 includes means, such as theprocessor 22 or the like, for map matching a plurality of probe pointsto respective links. Although the probe points may be map matched torespective links of a road network in various manners, one technique formap matching a plurality of probe points to respective links in anefficient manner is described by U.S. patent application Ser. No.14/752,159 entitled Map-Centric Map Matching Method and Apparatus andfiled Jun. 26, 2015, the entire contents of which are incorporatedherein by reference. During the map matching process, the apparatus willalso include means, such as the processor or the like, for identifyingone or more probe points associated with an ambiguous link tuple. Inthis regard, the apparatus, such as the processor, is configured toidentify probe points that map match to more than one link by satisfyingthe matching parameters for two or more links. Although various matchingparameters may be utilized to associate probe points with a respectivelink, examples of the matching parameters that may be utilized includethe maximum distance to a road segment, the heading tolerance withrespect to the road heading, the minimum and maximum speed associatedwith the probe point and maximum and/or minimum thresholds associatedwith the confidence value with which a probe point is matched to arespective link.

With respect to some probe points, multiple links may satisfy all of thematching parameters such that the result of the map matching techniqueis ambiguous. While the probe points for which the result of the mapmatching is ambiguous may be associated with one of the links based upona predefined criteria, such as by associating a probe point with theroad segment that is closest to the probe point, the road segment thathas a heading that most closely matches the heading associated with theprobe point or the road segment for which the match has the greatestconfidence value, the apparatus 20, such as the processor 22, of anexample embodiment identifies the probe point as being ambiguous andidentifies the two or more links to which the probe point may bematched, that is, that two or more links for which the matchingparameters are satisfied relative to the probe point in question, to bethe ambiguous link tuple.

Once the ambiguous link tuples and the probe points associated therewithhave been identified, the method, apparatus and computer program productof an example embodiment analyze the probe points that are associatedwith ambiguous link tuples in an efficient manner in order to identifythe individual links with which the probe points are associated. In thisregard, for a probe point having a respective trajectory ID and beingassociated with an ambiguous link tuple, the apparatus 20 includesmeans, such as the processor 22 or the like, for identifying each probepoint having the respective trajectory ID that is unambiguously matchedto one of a first branch or a second branch that extend away from theambiguous link tuple. See block 32 of FIG. 3. In this regard, each probepoint is associated with a plurality of parameters including, forexample, location, speed, heading, etc. Each probe point is alsogenerally associated with a trajectory ID. The trajectory ID mayuniquely identify the probe points collected by a respective device,such as the navigation system for a vehicle, at least for a period oftime. Thus, each probe point collected by the same device for at least aperiod of time will have the same probe trajectory ID, which differsfrom the probe trajectory IDs associated with the probe points collectedby other devices during the same period of time.

In order to identify each probe point having the respective trajectoryID that is unambiguously matched to a first branch or that isunambiguously matched to a second branch that extend away from theambiguous link tuple, the apparatus 20, such as the processor 22,identifies each of a plurality of branches that extend away from theambiguous link tuple. While at least two branches, namely, a firstbranch and a second branch, extend away from the ambiguous link tuple,three or more branches may extend away from the ambiguous link tuple insome embodiments. By way of example, FIG. 4 depicts a road networkincluding an ambiguous link tuple 50 formed by a highway having a rampthat separates from the highway. In this example, a plurality of probepoints are associated by map matching to the various road segments ofthe road network. However, for those probe points within the ambiguouslink tuple, the probe points satisfy the matching parameters for each ofthe links of the ambiguous link tuple. In this example, the continuationof the highway beyond the ambiguous link tuple forms a first branch 52and the extension of the ramp beyond the ambiguous link tuple forms thesecond branch 54. Thus, the apparatus, such as the processor, identifieseach probe point along the first branch and along the second branch, inthe direction of the bifurcating branches with respect to the ambiguousprobe region, that has the same trajectory ID as a probe point withinthe ambiguous probe region.

In the illustrated embodiment in which the bifurcation is an off-ramp,probe points are identified along the first and second branches in thedownstream direction with respect to traffic flow relative to theambiguous probe region. In general for ramps and bifurcations, thedirection in which the first and second branches are analyzed in orderto identify probe points having the same trajectory ID is irrespectiveto the traffic flow and depends on whether the roads spit or merge. Inthis regard, the direction in which the first and second branches areanalyzed goes in the direction of the splitting branches of thebifurcating roads, e.g., the direction in which the first and secondbranches are analyzed follows the traffic flow for splitting roads, butbacktracks in a direction opposite of the traffic flow for merged roads.For crossing or adjacent roads, the first and second branches areanalyzed in both directions of traffic flow from the ambiguous proberegion.

As this example demonstrates, a plurality of probe points havingrespective trajectory IDs may be associated with an ambiguous linktuple. At least some of the probe points associated with an ambiguouslink tuple generally have different trajectory IDs as a result of havingbeen collected as different vehicles drove along the road segments thatdefine the links of the ambiguous link tuple. In order to efficientlymatch the probe points associated with an ambiguous link tuple withrespective links of the ambiguous link tuple, the apparatus 20 of anexample embodiment includes means, such as the processor 22 or the like,for identifying each probe point having any one of the respectivetrajectory IDs of the probe points associated with the ambiguous linktuple that is unambiguously matched to one of the first branch or thesecond branch during a single traversal of the first branch and a singletraversal of the second branch. Thus, the apparatus, such as theprocessor, of this example embodiment identifies all of the probe pointsalong the first branch having a trajectory ID that matches any one ofthe trajectory IDs of the probe points associated with the ambiguouslink tuple during a single pass along the first branch. Similarly, theapparatus, such as the processor, of this example embodiment identifiesall of the probe points along the second branch having a trajectory IDthat matches any one of the trajectory IDs of the probe pointsassociated with the ambiguous link tuple during a single pass along thesecond branch. Thus, the apparatus, such as the processor, of an exampleembodiment evaluates the probe points and the respective trajectory IDsalong the first branch and along the second branch only a single timewith respect to all of the probe points associated with the ambiguouslink region, thereby increasing the efficiency with which the probepoints are matched to a respective link.

In regards to identifying each probe point having the respectivetrajectory ID that is unambiguously matched to one of the first branchor the second branch, the apparatus 20, such as the processor 22, isconfigured to identify each probe point having the respective trajectoryID that is unambiguously matched to one of the first and second branchesalong the same predefined length of the first and second branches, asmeasured in a downstream direction (relative to traffic flow since it isan off ramp) from the location of the ambiguous link tuple.Additionally, in an embodiment in which one or both of the branchessplits into at least two sub-branches, the apparatus, such as theprocessor, is configured in accordance with an example embodiment toidentify each probe point having the respective trajectory ID that isunambiguously matched to the respective branch that has split into twoor more sub-branches by identifying each probe point having therespective trajectory ID that is unambiguously matched to either one orboth of the at least two sub-branches, at least until the predefinedlength of the branch and its two or more sub-branches has been traversedand the probe points associated therewith have been evaluated. Withrespect to the example depicted in FIG. 4, the second branch 54 definedby the ramp splits into two sub-branches 54 a. As such, the apparatus,such as a processor, considers the probe points along each of the twosub-branches, at least until the probe points along the predefinedlength of the second branch and its sub-branches has been evaluated, inorder to identify probe points having the same respective trajectory IDsas the probe points associated with the ambiguous link tuple.

As shown in block 34 of FIG. 3, the apparatus 20 of an exampleembodiment also includes means, such as the processor 22 or the like,for separately determining the number of probe points having therespective trajectory ID (of a probe point associated with the ambiguouslink tuple) that are unambiguously matched to the first branch and thatare unambiguously matched to the second branch. Thus, for a probe pointhaving a respective trajectory ID that is associated with the ambiguouslink tuple, the apparatus, such as the processor, determines the numberof probe points having the same respective trajectory ID that areunambiguously matched to the first branch. Additionally, the apparatus,such as the processor, determines the number of probe points having thesame respective trajectory ID that are unambiguously matched to thesecond branch. In an embodiment in which multiple probe points withdifferent trajectory IDs are associated with the ambiguous link tuple,the apparatus, such as the processor, of an example embodiment isconfigured to separately determine the number of probe points having therespective trajectory ID that are unambiguously matched to the firstbranch and that are unambiguously matched to the second branch for eachof the probe points having a different trajectory ID that is associatedwith the ambiguous link tuple.

As shown in block 36 of FIG. 3, the apparatus 20 also includes means,such as the processor 22 or the like, for matching the probe pointhaving the respective trajectory ID that was associated with theambiguous link tuple to a respective one of the first branch or thesecond branch based upon the number of probe points having therespective trajectory ID that are unambiguously matched to the firstbranch and that are unambiguously matched to the second branch. As shownin FIG. 5, the apparatus, such as the processor, of an exampleembodiment is configured to match the probe point having the respectivetrajectory ID that was associated with the ambiguous link tuple to theone of the first branch or the second branch that has the greater numberof probe points having the respective trajectory ID that areunambiguously matched thereto, at least in an instance in which thenumber of probe points having the respective trajectory ID that areunambiguously matched the one branch exceeds the number of probe pointshaving the respective trajectory ID that are unambiguously matched theother branch by at least a predefined amount.

As shown in block 60 of FIG. 5, for example, the apparatus 20 of anexample embodiment includes means, such as the processor 22 or the like,for determining whether the number of probe points matched to one of thefirst branch or the second branch exceeds the number of probe pointsmatched to the other of the first branch or the second branch by atleast a predefined amount. In an instance in which the number of probepoints matched to one of the first and second branches does exceed thenumber of probe points matched to the other of the first and secondbranches by at least the predefined amount, the apparatus of thisexample embodiment includes means, such as the processor or the like,for matching the probe point having the respective trajectory ID thatwas associated with the ambiguous link tuple to the one of the firstbranch or the second branch for which the number of probe points havingthe respective trajectory ID unambiguously matched thereto is greater.See block 62. However, in an instance in which the number of probepoints matched to one of the first and second branches differs from thenumber of probe points matched to the other of the first and secondbranches by less than the predefined amount, the apparatus of thisexample embodiment includes means, such as the processor or the like,for causing the probe point having the respective trajectory ID toremain associated with the ambiguous link tuple since the probe pointcannot be associated with any particular one of the links of theambiguous link tuple with sufficient confidence in the resultingaccuracy of the matching. See block 64. This matching process may beperformed for each of the probe points associated with the ambiguouslink tuple, thereby eliminating or at least reducing the number of probepoints associated with the ambiguous link tuple.

The predefined amount may be set to a variety of different values. Inone embodiment, however, the predefined amount is 1 and the apparatus,such as the processor, is configured to determine whether the samenumber of probe points are matched to both the first and secondbranches. In this example embodiment, in an instance in which adifferent number of probe points having the same respective trajectoryID are unambiguously matched to the first branch and are unambiguouslymatched to the second branch, the apparatus 20, such as the processor22, is configured to match the probe point having the respectivetrajectory ID that was associated with the ambiguous link tuple to theone of the first branch or the second branch for which the number ofprobe points having the respective trajectory ID unambiguously matchedthereto is greater. Thus, the probe point having the respectivetrajectory ID that was associated with the ambiguous link tuple ismatched to the branch of the road network, such as maybe defined by thelink of the ambiguous link tuple, for which a greater number of probepoints having the same respective trajectory ID are matched thereto. Byway of an example, in an instance in which twenty probe points having arespective trajectory ID are unambiguously matched to the first branchwhile two probe points having the same trajectory ID are unambiguouslymatched to the second branch, the apparatus, such as the processor, ofthis example embodiment is configured to match the probe point havingthe respective trajectory ID that was associated with the ambiguous linktuple to the first branch. However, in an instance in which the samenumber of probe points having the respective trajectory ID are matchedto both the first branch and to the second branch, the apparatus, suchas the processor, of this example embodiment may cause the probe pointhaving the respective trajectory ID to remain associated with theambiguous link tuple since the probe point cannot be associated witheither of the links of the ambiguous link tuple with sufficientconfidence.

By way of example and in comparison to FIG. 4 in which the plurality ofprobe points associated with the ambiguous link tuple 50 were depictedso as to have a black color, FIG. 6 depicts the probe points that werepreviously associated with the ambiguous link region but that have nowbeen associated with either the first branch or the second branch. Inthis regard, the probe points that are matched to the first branch are,in turn, associated with the link of the ambiguous link tuple thatcorresponds to the first branch, such as being a part of the firstbranch or being part of the same roadway upstream of the first branch.Similarly, the probe points that are matched to the second branch areassociated with the link of the ambiguous link tuple that corresponds tothe second branch, such as being a part of the second branch or beingpart of the same roadway upstream of the second branch. In relation toFIG. 6, the probe points shown to have a red color are associated withthe second branch 54, that is, the ramp, while the probe point shown tohave a yellow color are associated with the first branch 52, namely, thehighway that continues onward beyond the ramp.

In an example embodiment, the apparatus 20 also includes means, such asthe processor 22 or the like, for determining a confidence valueassociated with the match of the probe point having the respectivetrajectory ID to the respective one of the first branch 52 or the secondbranch 54. See block 38 of FIG. 3. Although the confidence value may bedetermined in various manners, the confidence value of an exampleembodiment is determined based upon a ratio of the number of probepoints having the respective trajectory ID that are unambiguouslymatched to the first branch and the number of probe points having therespective trajectory ID that are unambiguously matched to the secondbranch. With reference to the foregoing example in which twenty probepoints having the respective trajectory ID are map matched to the firstbranch and two probe points having the same respective trajectory ID aremap matched to the second branch, the ratio may be defined as 20:2. Inan example embodiment, matches of the probe points that were associatedwith the ambiguous link tuple for which a confidence value exceeds apredetermined threshold may be maintained, while probe points that wereassociated with the ambiguous link tuple for which the confidence valueassociated with the match to a respective one of the first branch or thesecond branch fails to satisfy the predetermined threshold may remainmatched, not with a respective one of the first branch or the secondbranch, but with the ambiguous link tuple.

As described above, a method, apparatus and computer program product areprovided to match probe points to road segments utilizing a trajectoryidentifier. As such, probe points in ambiguous locations within a roadnetwork may be more accurately matched to road segments with a greaterlevel of confidence. In order to match the probe points to road segmentsin an efficient manner, many of the probe points may initially bematched to respective links that comprise the road segments with amap-centric map matching technique prior to matching the probe pointsfrom an ambiguous link tuple to road segments utilizing a trajectoryidentifier in accordance with an example embodiment of the presentinvention. In order to further increase the efficiency, the probe pointsat ambiguous locations within the road network may be accurately mappedto respective road segments by analyzing the probe points alreadymatched to a limited number of the road segments that are proximate tothe ambiguous locations in a single traversal along the road segments.

FIGS. 3 and 5 illustrate flowcharts of an apparatus, method and computerprogram product according to example embodiments of the invention. Itwill be understood that each block of the flowcharts, and combinationsof blocks in the flowcharts, may be implemented by various means, suchas hardware, firmware, processor, circuitry, and/or other communicationdevices associated with execution of software including one or morecomputer program instructions. For example, one or more of theprocedures described above may be embodied by computer programinstructions. In this regard, the computer program instructions whichembody the procedures described above may be stored by a memory device14 of an apparatus 20 employing an embodiment of the present inventionand executed by a processor 22 of the apparatus. As will be appreciated,any such computer program instructions may be loaded onto a computer orother programmable apparatus (for example, hardware) to produce amachine, such that the resulting computer or other programmableapparatus implements the functions specified in the flowchart blocks.These computer program instructions may also be stored in acomputer-readable memory that may direct a computer or otherprogrammable apparatus to function in a particular manner, such that theinstructions stored in the computer-readable memory produce an articleof manufacture the execution of which implements the function specifiedin the flowchart blocks. The computer program instructions may also beloaded onto a computer or other programmable apparatus to cause a seriesof operations to be performed on the computer or other programmableapparatus to produce a computer-implemented process such that theinstructions which execute on the computer or other programmableapparatus provide operations for implementing the functions specified inthe flowchart blocks.

Accordingly, blocks of the flowcharts support combinations of means forperforming the specified functions and combinations of operations forperforming the specified functions for performing the specifiedfunctions. It will also be understood that one or more blocks of theflowcharts, and combinations of blocks in the flowcharts, can beimplemented by special purpose hardware-based computer systems whichperform the specified functions, or combinations of special purposehardware and computer instructions.

In some embodiments, certain ones of the operations above may bemodified or further amplified. Furthermore, in some embodiments,additional optional operations may be included, some of which have beendescribed above. Modifications, additions, or amplifications to theoperations above may be performed in any order and in any combination.

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseinventions pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the inventions are not to be limited to the specificembodiments disclosed and that modifications and other embodiments areintended to be included within the scope of the appended claims.Moreover, although the foregoing descriptions and the associateddrawings describe example embodiments in the context of certain examplecombinations of elements and/or functions, it should be appreciated thatdifferent combinations of elements and/or functions may be provided byalternative embodiments without departing from the scope of the appendedclaims. In this regard, for example, different combinations of elementsand/or functions than those explicitly described above are alsocontemplated as may be set forth in some of the appended claims.Although specific terms are employed herein, they are used in a genericand descriptive sense only and not for purposes of limitation.

That which is claimed:
 1. A method comprising: for a probe point havinga respective trajectory identifier (ID) and associated with an ambiguouslink tuple, identifying each probe point having the respectivetrajectory ID that is unambiguously matched to one of a first branch ora second branch that extend away from the ambiguous link tuple;separately determining a number of probe points having the respectivetrajectory ID that are unambiguously matched to the first branch andthat are unambiguously matched to the second branch; and matching theprobe point having the respective trajectory ID that was associated withthe ambiguous link tuple to a respective one of the first branch or thesecond branch based upon the number of probe points having therespective trajectory ID that are unambiguously matched to the firstbranch and that are unambiguously matched to the second branch.
 2. Amethod according to claim 1 wherein matching the probe point comprisesmatching the probe point having the respective trajectory ID that wasassociated with the ambiguous link tuple to the respective one of thefirst branch or the second branch for which the number of probe pointshaving the respective trajectory ID unambiguously matched theretoexceeds the number of probe points having the respective trajectory IDthat are unambiguously matched to the other one of the first branch orthe second branch by at least a predefined amount.
 3. A method accordingto claim 2 further comprising causing the probe point having therespective trajectory ID to remain associated with the ambiguous linktuple in an instance in which the number of probe points having therespective trajectory ID that are unambiguously matched to the firstbranch and that are unambiguously matched to the second branch differ byless than the predefined amount.
 4. A method according to claim 1wherein a plurality of probe points having respective trajectory IDs areassociated with the ambiguous link tuple, and wherein identifying eachprobe point comprises identifying each probe point having any one of therespective trajectory IDs of the probe points associated with theambiguous link tuple that are unambiguously matched to one of the firstbranch or the second branch during a single traversal of the firstbranch and the second branch.
 5. A method according to claim 1 furthercomprising determining a confidence value associated with the match ofthe probe point having the respective trajectory ID to a respective oneof the first branch or the second branch based upon a ratio of a numberof probe points having the respective trajectory ID that areunambiguously matched to the first branch and to the second branch.
 6. Amethod according to claim 1 further comprising map matching a pluralityof probe points to respective links, wherein map matching comprisesidentifying the probe point associated with the ambiguous link tuple. 7.A method according to claim 1 wherein identifying each probe pointcomprises identifying each probe point having the respective trajectoryID that is unambiguously matched to one of the first and second branchesalong a same predefined length of the first and second branches.
 8. Amethod according to claim 1 wherein the first branch splits into atleast two sub-branches, and wherein identifying each probe pointcomprises identifying each probe point having the respective trajectoryID that is unambiguously matched to one of the at least twosub-branches.
 9. An apparatus comprising at least one processor and atleast one memory storing computer program code, wherein the at least onememory and stored computer program code are configured, with the atleast one processor, to cause the apparatus to at least: for a probepoint having a respective trajectory identifier (ID) and associated withan ambiguous link tuple, identify each probe point having the respectivetrajectory ID that is unambiguously matched to one of a first branch ora second branch that extend away from the ambiguous link tuple;separately determine a number of probe points having the respectivetrajectory ID that are unambiguously matched to the first branch andthat are unambiguously matched to the second branch; and match the probepoint having the respective trajectory ID that was associated with theambiguous link tuple to a respective one of the first branch or thesecond branch based upon the number of probe points having therespective trajectory ID that are unambiguously matched to the firstbranch and that are unambiguously matched to the second branch.
 10. Anapparatus according to claim 9 wherein the at least one memory andstored computer program code are configured, with the at least oneprocessor, to cause the apparatus to match the probe point by matchingthe probe point having the respective trajectory ID that was associatedwith the ambiguous link tuple to the respective one of the first branchor the second branch for which the number of probe points having therespective trajectory ID unambiguously matched thereto exceeds thenumber of probe points having the respective trajectory ID that areunambiguously matched to the other one of the first branch or the secondbranch by at least a predefined amount.
 11. An apparatus according toclaim 10 wherein the at least one memory and stored computer programcode are further configured, with the at least one processor, to causethe apparatus to cause the probe point having the respective trajectoryID to remain associated with the ambiguous link tuple in an instance inwhich the number of probe points having the respective trajectory IDthat are unambiguously matched to the first branch and that areunambiguously matched to the second branch differ by less than thepredefined amount.
 12. An apparatus according to claim 9 wherein aplurality of probe points having respective trajectory IDs areassociated with the ambiguous link tuple, and wherein the at least onememory and stored computer program code are configured, with the atleast one processor, to cause the apparatus to identify each probe pointby identifying each probe point having any one of the respectivetrajectory IDs of the probe points associated with the ambiguous linktuple that are unambiguously matched to one of the first branch or thesecond branch during a single traversal of the first branch and thesecond branch.
 13. An apparatus according to claim 9 wherein the atleast one memory and stored computer program code are furtherconfigured, with the at least one processor, to cause the apparatus todetermine a confidence value associated with the match of the probepoint having the respective trajectory ID to a respective one of thefirst branch or the second branch based upon a ratio of a number ofprobe points having the respective trajectory ID that are unambiguouslymatched to the first branch and to the second branch.
 14. An apparatusaccording to claim 9 wherein the at least one memory and stored computerprogram code are further configured, with the at least one processor, tocause the apparatus to map match a plurality of probe points torespective links, and wherein the at least one memory and storedcomputer program code are configured, with the at least one processor,to cause the apparatus to map match by identifying the probe pointassociated with the ambiguous link tuple.
 15. A computer program productcomprising at least one non-transitory computer-readable storage mediumhaving computer-readable program instructions stored therein, thecomputer-readable program instructions comprising: for a probe pointhaving a respective trajectory identifier (ID) and associated with anambiguous link tuple, program instructions configured to identify eachprobe point having the respective trajectory ID that is unambiguouslymatched to one of a first branch or a second branch that extend awayfrom the ambiguous link tuple; program instructions configured toseparately determine a number of probe points having the respectivetrajectory ID that are unambiguously matched to the first branch andthat are unambiguously matched to the second branch; and programinstructions configured to match the probe point having the respectivetrajectory ID that was associated with the ambiguous link tuple to arespective one of the first branch or the second branch based upon thenumber of probe points having the respective trajectory ID that areunambiguously matched to the first branch and that are unambiguouslymatched to the second branch.
 16. A computer program product accordingto claim 15 wherein the program instructions configured to match theprobe point comprise program instructions configured to match the probepoint having the respective trajectory ID that was associated with theambiguous link tuple to the respective one of the first branch or thesecond branch for which the number of probe points having the respectivetrajectory ID unambiguously matched thereto exceeds the number of probepoints having the respective trajectory ID that are unambiguouslymatched to the other one of the first branch or the second branch by atleast a predefined amount.
 17. A computer program product according toclaim 16 wherein the computer-readable program instructions furthercomprise program instructions configured to cause the probe point havingthe respective trajectory ID to remain associated with the ambiguouslink tuple in an instance in which the number of probe points having therespective trajectory ID that are unambiguously matched to the firstbranch and that are unambiguously matched to the second branch differ byless than the predefined amount.
 18. A computer program productaccording to claim 15 wherein a plurality of probe points havingrespective trajectory IDs are associated with the ambiguous link tuple,and wherein the program instructions configured to identify each probepoint comprise program instructions configured to identify each probepoint having any one of the respective trajectory IDs of the probepoints associated with the ambiguous link tuple that are unambiguouslymatched to one of the first branch or the second branch during a singletraversal of the first branch and the second branch.
 19. A computerprogram product according to claim 15 wherein the computer-readableprogram instructions further comprise program instructions configured todetermine a confidence value associated with the match of the probepoint having the respective trajectory ID to a respective one of thefirst branch or the second branch based upon a ratio of a number ofprobe points having the respective trajectory ID that are unambiguouslymatched to the first branch and to the second branch.
 20. A computerprogram product according to claim 15 wherein the computer-readableprogram instructions further comprise program instructions configured tomap match a plurality of probe points to respective links, wherein theprogram instructions configured to map match comprise programinstructions configured to identify the probe point associated with theambiguous link tuple.